NetApp Cloud Insights – Cloud Secureを使ってみた(SMB検知編)
こんにちは。たかやまです。
前回Linux環境(NFS接続)でのCloud Secureランサムウェア検知をご紹介しました。
今回はWindows環境(SMB接続)でCloud Secureのランサムウェア検知を試してみたいと思います。
やってみた
ユーザ追加
1. ユーザ作成
Cloud SecureではActive Directory/LDAPに登録されているユーザ情報を紐づけてアクセス情報を確認することができます。情報確認用に新たにユーザを作成していきたいと思います。
Active Directoryサーバにログインし、検索から dsa.msc
を入力して Active Directoryユーザーとコンピューター を表示します。
Active Directoryユーザーとコンピューター が表示されたらFSx for ONTAPに接続するOUを右クリックして新規作成
→ ユーザ
を選択します。
OUの設定がまだのかたはこちらのブログを参考に設定を実施してください。
ユーザ名を登録します。
2. ユーザプロパティ設定
追加されたユーザを右クリックして プロパティ
を選択します。
ユーザの電話番号/住所/役職/写真等のプロパティ情報を登録します。
thumbnailphotoの登録コマンド
$photo = [byte[]](Get-Content C:\画像保存先path -Encoding byte) Set-ADUser your_username -Replace @{thumbnailPhoto=$photo}
実行ログ(展開)
$photo = [byte[]](Get-Content C:\Users\Administrator\Pictures\neko_icon.jpg -Encoding byte) Set-ADUser takayama -Replace @{thumbnailPhoto=$photo}
3. Cloud Secureユーザ確認
ユーザディレクトリコレクターは12時間間隔で同期するため、強制的に同期する場合は Restart
を実行します。
The User list is refreshed every 12 hours.
まだユーザディレクトリコレクターを設定していない場合は、こちらのブログを参考に登録を実施してください。
NetApp Cloud Insights – Cloud Secureを使ってみた(導入編) | DevelopersIO
左ペインの FORENSICS
→ Users
にさきほど追加したユーザが表示されます。
ユーザを選択すると、設定した以下のプロパティ情報が表示されます。
- ユーザの名前
- ユーザの E メールアドレス
- ユーザーのマネージャー
- ユーザの電話連絡先
- ユーザの場所
ちなみに、このプロパティ情報はユーザディレクトリコレクタ設定にある Attribute Mappingの設定が紐付けられる形になります。Attribute Mappingに反映されるActive DirectoryのAttibute情報はユーザプロパティ 属性エディター
から確認できます。
通知設定
Cloud Secureでは以下のイベント発生時に簡単にメール通知を実装できます。
今回はこちらの通知機能も設定していこうと思います。
- Potential Attack
- Warning
- データコレクタの接続エラー
設定画面は ADMIN
→ Notifications
から表示します。
今回はPotential Attackの通知を受け取りたいので、 Security Alerts
にメールアドレスを入力します。
保存すると上部に Successfully saved email configuration!
が表示されます
ディスクマウント
共有ボリュームに接続したいクライアントのコマンドプロンプトで以下のコマンドを実行します。
net use Z: \\[IPアドレス or 共有名]\フォルダ\サブフォルダ\
実行ログ(展開)
C:\Users\takayama>net use Z: \\SVM02.fsx-dev.classmethod.jp\C$\taka_vol1 コマンドは正常に終了しました。
ファイル作成
1. データコレクター停止
Linuxでの検知テストを実施した時と同様に、データコレクターが動作している場合は一旦停止します。
2. ファイル作成
デスクトップなどでファイル作成用の createfile.ps1
を用意します。
$files="\\[IPアドレス or 共有名]\フォルダ\サブフォルダ\" 1..1000 | foreach { new-item -path $files$_.txt } # write something to files or it wont "read" $i = 1 while ($i -le 1000) { add-content -path $files$i.txt -value "ransom test" $i++ }
3. powershell実行
powershellを実行します。
以下のメッセージが出力された Y
を入力します。
実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):
実行ログ(展開)
実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): Y ディレクトリ: \\SVM02.fsx-dev.classmethod.jp\share Mode LastWriteTime Length Name ---- ------------- ------ ---- -a----2022/06/03 11:45 0 1.txt -a----2022/06/03 11:45 0 2.txt -a----2022/06/03 11:45 0 3.txt -a----2022/06/03 11:45 0 4.txt -a----2022/06/03 11:45 0 5.txt -a----2022/06/03 11:45 0 6.txt -a----2022/06/03 11:45 0 7.txt -a----2022/06/03 11:45 0 8.txt -a----2022/06/03 11:45 0 9.txt -a----2022/06/03 11:45 0 10.txt -a----2022/06/03 11:45 0 11.txt -a----2022/06/03 11:45 0 12.txt -a----2022/06/03 11:45 0 13.txt ・ ・ ・ -a----2022/06/03 11:45 0 998.txt -a----2022/06/03 11:45 0 999.txt -a----2022/06/03 11:45 0 1000.txt
1000個ファイルが作成されていればOKです。
ランサムウェア実行
1. データコレクター再開
正しいパスワードを入力して、データコレクターを再開します。
2. ransomware.ps1ファイル作成
デスクトップなどにランサムウェアの代わりとなるスクリプトの ransomware.ps1
を用意します。
$files="\\[IPアドレス or 共有名]\フォルダ\サブフォルダ\" Write-Host "" Write-Host "Simulating Ransom attack..." Write-Host "" $i = 1 while ($i -le 1000) { Invoke-Item -path $files$i.txt Stop-Process -Force -Name "notepad" add-content -path $files$i.txt -value "ransome" Rename-Item -Path $files$i.txt -NewName "$i.txt.lol" $i++ }
3. powershell実行
以下のメッセージが出力された Y
を入力します。
実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"):
スクリプトの処理が終わると、作成したテキストファイルの拡張子が lol
に変わります。
Cloud Secure確認
1. メール確認
Cloud Secureを確認する前に、先程設定したメール通知を確認します。
メールを確認するとRansomware attackに関するメッセージが届いていることを確認できます。
View details に記載されてるリンクをクリックすることで、すぐにアラート画面に飛ぶこともできます。
2. Cloud Secure確認
左ペインの Alerts
から検知していることが確認できます。
検知の詳細は以下の通りです。
ADで設定した情報と紐付けられており、どのユーザが攻撃者になっているかひと目でわかります。
各項目についてはこちらのブログで紹介しているのでぜひ確認ください。
今回Cloud Secureは自動スナップショットのみを取得してくれる動作にしているため、こちらの画面から Restrict User
を使い接続をブロックしてみます。
制限の内容は以下の組み合わせになります。
今回は12時間アクセスをブロックする設定にしてみます。
- Limit Access :
Block
/Read-only
- Time Period :
Permanetly
/1hour
/2hour
/4hour
/8hour
/12hour
ん?以下のエラーメッセージがでてうまく制限できていないようです。
エラー内容はSVMの is-exportpolicy-enabled
オプションがtrueになっていない場合に発生するようです。
classemthod-dev-fsx-ontap-svm02: Export policy usage for SMB protocol is disabled for the SVM.Enable use of "export-policy" to use restrict user access feature.
Restrict機能を利用するためSVMで is-exportpolicy-enabled
オプションを有効化していきます。
現在はオプションが表示されないため設定されていないことが確認できます。
FsxId06b3d2e945d454c19::> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 Policy RuleAccess ClientRO Vserver NameIndex Protocol Match Rule ------------ --------------- ------ -------- --------------------- --------- classmethod-dev-fsx-ontap-svm02 default 1 any 0.0.0.0/0 any
以下のコマンドで特権になります。
set -privilege advanced
実行ログ(展開)
FsxId06b3d2e945d454c19::> set -privilege advanced Warning: These advanced commands are potentially dangerous; use them only when directed to do so by NetApp personnel. Do you want to continue? {y|n}: y
以下のコマンドでSVMに -is-exportpolicy-enabled
オプションを有効にします。
cifs options modify -is-exportpolicy-enabled true -vserver <vserver>
実行ログ(展開)
FsxId06b3d2e945d454c19::*> cifs options modify -is-exportpolicy-enabled true -vserver classmethod-dev-fsx-ontap-svm02
以下のコマンドで export-policy
を適用する対象クライアントを設定します。
今回は 0.0.0.0/0
を指定し、すべてのクライアントを対象にします。
export-policy rule create -vserver <vserver> -policyname default -protocol cifs -clientmatch 0.0.0.0/0 -rorule any -rwrule any
実行ログ(展開)
FsxId06b3d2e945d454c19::*> export-policy rule create -vserver classmethod-dev-fsx-ontap-svm02 -policyname default -protocol cifs -clientmatch 0.0.0.0/0 -rorule any -rwrule any
設定コマンドは以上です。最後に設定が問題ないか確認していきます。
cifs options show -fields is-exportpolicy-enabled -vserver <vserver> export-policy show -vserver <vserver> export-policy rule show -policyname default -vserver <vserver>
実行ログ(展開)
FsxId06b3d2e945d454c19::*> cifs options show -fields is-exportpolicy-enabled -vserver classmethod-dev-fsx-ontap-svm02 vserver is-exportpolicy-enabled ------------------------------- ----------------------- classmethod-dev-fsx-ontap-svm02 true FsxId06b3d2e945d454c19::*> export-policy show -vserver classmethod-dev-fsx-ontap-svm02 Vserver Policy Name --------------- ------------------- classmethod-dev-fsx-ontap-svm02 default classmethod-dev-fsx-ontap-svm02 fsx-root-volume-policy 2 entries were displayed. FsxId06b3d2e945d454c19::*> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 Policy RuleAccess ClientRO Vserver NameIndex Protocol Match Rule ------------ --------------- ------ -------- --------------------- --------- classmethod-dev-fsx-ontap-svm02 default 1 any 0.0.0.0/0 any classmethod-dev-fsx-ontap-svm02 default 2 cifs 0.0.0.0/0 any 2 entries were displayed.
export-policyが効いた状態でWindowsクライアントからFSx for NetAppのフォルダにアクセスしようとすると
このような形でアクセスが制限されていることが確認できます。
ONTAP CLIでSVMのexport-policyのルール確認すると cloudsecure_rule
が追加されていることが確認できます。
FsxId06b3d2e945d454c19::*> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 Policy RuleAccess ClientRO Vserver NameIndex Protocol Match Rule ------------ --------------- ------ -------- --------------------- --------- classmethod-dev-fsx-ontap-svm02 default 1 nfs3,cloudsecure_rule, never nfs4,10.0.0.138,10.0.0.184 cifs classmethod-dev-fsx-ontap-svm02 default 3 any 0.0.0.0/0 any classmethod-dev-fsx-ontap-svm02 default 4 cifs 0.0.0.0/0 any 3 entries were displayed. FsxId06b3d2e945d454c19::*> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 -ruleindex 1 Vserver: classmethod-dev-fsx-ontap-svm02 Policy Name: default Rule Index: 1 Access Protocol: nfs3, nfs4, cifs List of Client Match Hostnames, IP Addresses, Netgroups, or Domains: cloudsecure_rule,10.0.0.138,10.0.0.184 RO Access Rule: never RW Access Rule: never User ID To Which Anonymous Users Are Mapped: 65534 Superuser Security Types: none Honor SetUID Bits in SETATTR: false Allow Creation of Devices: false NTFS Unix Security Options: fail Vserver NTFS Unix Security Options: use_export_policy Change Ownership Mode: restricted Vserver Change Ownership Mode: use_export_policy
次にさきほど設定したLimit Accessを Read-only
に変更してみたいと思います。
この状態ではファイルの読み込みは可能となります
もちろん書き込みはできません。
このときのSVMのexport-policyのルールはこちらです。
RO Access Rule
がanyに変わっていることが確認できます。
FsxId06b3d2e945d454c19::*> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 -ruleindex 1 Vserver: classmethod-dev-fsx-ontap-svm02 Policy Name: default Rule Index: 1 Access Protocol: nfs3, nfs4, cifs List of Client Match Hostnames, IP Addresses, Netgroups, or Domains: cloudsecure_rule,10.0.0.138,10.0.0.184 RO Access Rule: any RW Access Rule: never User ID To Which Anonymous Users Are Mapped: 65534 Superuser Security Types: none Honor SetUID Bits in SETATTR: false Allow Creation of Devices: false NTFS Unix Security Options: fail Vserver NTFS Unix Security Options: use_export_policy Change Ownership Mode: restricted Vserver Change Ownership Mode: use_export_policy
ファイルリストア
最後にONTAP Snapshotを使ってファイルリストアを行いたいと思います。
ONTAP Snapshotの機能の詳細についてはこちらのブログをご覧ください。
ファイルリストアにあたりアクセス権を戻します。
アクセス権はRestore Access
から戻すことができます。
ポップアップがでたら Restore Access
を選択します。
export-policyから cloudsecure_rule
が削除されていることが確認できます。
FsxId06b3d2e945d454c19::> export-policy rule show -policyname default -vserver classmethod-dev-fsx-ontap-svm02 Policy Rule Access Client RO Vserver Name Index Protocol Match Rule ------------ --------------- ------ -------- --------------------- --------- classmethod-dev-fsx-ontap-svm02 default 3 any 0.0.0.0/0 any classmethod-dev-fsx-ontap-svm02 default 4 cifs 0.0.0.0/0 any 2 entries were displayed.
Windowsクライアントに戻り共有ボリュームを右クリックし、プロパティ
を選択します。
以前のバージョン
タブからランサムウェア実行前のスナップショットを選択して、 復元
を選択します。デフォルトでは以下のスナップショットが取得される設定になっています。
hh:05
に1時間単位で作成され、最大6世代保持する毎時スナップショット- 月曜日から土曜日の
00:10
に作成され、最大2世代保持する日次スナップショット - 毎週日曜日の
00:15
に作成され、最大2世代保持する週次スナップショット
復元できるとポップアップが出力されます。
ボリューム内に暗号前のファイルを復元できたことが確認できます。
まとめ
Linux(NFS)については公式でシュミレーションのランサムウェアスクリプトが提供されていますが、Windows(SMB)でも同様のスクリプトを用意して動作確認することができました。
SMB接続の場合、ディレクトリサービスと連携してユーザ情報が詳細に見えるのもいいですね。
ONTAPストレージを利用している環境であれば、簡単にUBA検知を実装できるCloud Secureいかがだったでしょうか?
再掲になりますが、こちらのブログも参考にCloud Secureの利用のお役に立てれば幸いです。
以上、たかやまでした。